package com.lyf.language.practice.practice_6_21.io.commonio;

import org.junit.Test;


import java.io.File;
import java.io.IOException;
import java.nio.file.Path;

/**
 * IO操作，即解决通信的问题--
 * 通信需要关注：
 * 端、点  ----   端、点
 * 多对多的管理、端的建立、通道的连接（协议的标准化）
 * ---联系计算机网络进行总结分析
 *
 * File类
 *
 *
 * @author LYF
 * @date 2022/6/22
 */
public class FileTests {
    private final String path = "E:\\JavaProjects\\" +
            "LearnProjects\\learn-practice\\java-base\\" +
            "src\\main\\java\\com\\lyf\\language\\practice\\practice_6_21\\io\\commonio\\files\\";
    /*
    File类：进行端的操作；
    建立文件（端，可以有socket、数据库应用、套接字等）的 资源 端点---

    File的资源可以是   文件资源--图片、视频、文本等 也可以是 文件夹

     */
    @Test
    public void testFile(){
        /*
         1.层级关系
         File
         implements Serializable, Comparable<File>

          关注-- WinNTFFileSystem(DefaultFileSystem)
          {@see WinNTFileSystem}

         2.底层结构
         The FileSystem object representing the platform's local file system.
        private static final FileSystem fs = DefaultFileSystem.getFileSystem();

        private final String path;
         * Enum type that indicates the status of a file path.

        private static enum PathStatus { INVALID, CHECKED };

        private transient File.PathStatus status = null;




         */
        File file = new File(path+"tmp.txt");

        if(!file.exists()){
            try {
                file.createNewFile();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

    @Test
    public void testSys(){
        Runtime runtime = Runtime.getRuntime();
        System.out.println(runtime.availableProcessors()+"::" +
                // JVM 的内存--
                ""+runtime.freeMemory()/(1024*1024)+"MB"+"::"+ runtime.totalMemory()/(1024*1024)+"MB");
    }

    @Test
    public void testPath(){
        Path path = Path.of("");
        //path.
    }

}
